package com.mianshi;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class bilibili {
    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//        int m = in.nextInt();
//        int n = in.nextInt();
//        int[][] arr = new int[m][n];
//        for(int i = 0; i < m; i++){
//            for(int j = 0; j < n; j++){
//                arr[i][j] = in.nextInt();
//            }
//        }
        int[][] arr = new int[][]{{1,2,3,4},{5,6,7,8},{9,10,11,12}};
        List<Integer> list = new ArrayList<>();
        print(arr, list);
        int len = list.size();
        for(int i = 0; i < len; i++){
            if(i == len-1){
                System.out.println(list.get(i));
                break;
            }
            System.out.println(list.get(i)+",");
        }
    }

    public static void print(int[][] arr, List<Integer> list){
        if(arr.length == 0){
            return ;
        }
        int t = 0, b = arr.length - 1, l = 0, r = arr[0].length - 1;
        while(true){
            for(int i = l; i <= r; i++){
                list.add(arr[t][i]);
            }
            if(++t > b) break;
            for(int i = t; i <= b; i++){
                list.add(arr[i][r]);
            }
            if(--r < l) break;
            for(int i = r; i >= l; i--){
                list.add(arr[b][i]);
            }
            if(--b < t) break;
            for(int i = b; i >= t; i--){
                list.add(arr[i][l]);
            }
            if(++l >  r) break;
        }
    }
}
